package com.mall.service;

import com.mall.dto.OrderCancelDTO;
import com.mall.dto.OrderConfirmDTO;
import com.mall.dto.OrderRejectionDTO;
import com.mall.dto.OrdersPageQueryDTO;
import com.mall.po.Orders;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mall.result.PageResult;
import com.mall.vo.OrderCountVO;

/**
 * <p>
 * 订单信息 服务类
 * </p>
 *
 * @author itlxc
 * @since 2024-04-28
 */
public interface OrdersService extends IService<Orders> {

    /**
     * 订单搜索
     * @param ordersPageQueryDTO
     * @return
     */
    PageResult ordersPageQuery(OrdersPageQueryDTO ordersPageQueryDTO);

    /**
     * 各个状态的订单数量统计
     * @return
     */
    OrderCountVO getStatistics();

    /**
     * 商家接单
     * @param orderConfirmDTO
     */
    void confirmOrders(OrderConfirmDTO orderConfirmDTO);

    /**
     * 商家拒单
     * @param orderRejectionDTO
     */
    void rejectionOrders(OrderRejectionDTO orderRejectionDTO);

    /**
     * 派送订单
     * @param id
     */
    void deliveryOrders(Long id);

    /**
     * 完成订单
     * @param id
     */
    void completeOrders(Long id);

    /**
     * 商家取消订单
     * @param orderCancelDTO
     */
    void cancelOrders(OrderCancelDTO orderCancelDTO);
}
